package com.zl.spring.hello;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * Hello2类调用Hello的sayHello()方法
 * @ClassName: Hello2
 * @author: suke
 * @since: 2021/7/30 10:45
 */
public class Hello2 {


    public static void test(){
        System.out.println("执行test....");
        //调用Hello的sayHello()方法
        //传统写法:
         //1.手动创建调用方法所在类的对象
        //IHello hello1 = new  Hello();  //Hello2与hellol类强依赖关系
        //IHello hello1 = new  MyHello();
        //2.通过对象名.方法名()调用
       // System.out.println(hello1.sayHello("spring"));


        //使用spring的方式获取Hello对象
        //1.创建Spring容器对象:  ApplicationContext   接口   实现类:  ClassPathXmlApplicationContext  基于xml配置文件的spring容器对象
        ApplicationContext app   =  new ClassPathXmlApplicationContext("applicationContext.xml");

        //2.从Spring容器中获取需要对象  Object  getBean(String name)  根据bean的名字获取bean
        IHello hello1 = (IHello)app.getBean("hello1");

        //3.通过对象名.方法名()调用
        System.out.println(hello1.sayHello("spring"));

    }

    public static void main(String[] args) {
        test();
    }
}
